package com.ruoyi.system.service;

import com.ruoyi.system.domain.BsRelation;
import com.ruoyi.system.domain.dto.YoukeCenterInfoDTO;
import com.ruoyi.system.domain.ro.BsRelationRO;
import com.ruoyi.system.domain.vo.BsRelationVO;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 关系记录（关注、收藏、点赞）Service接口
 *
 * @author ruoyi
 * @date 2023-11-25
 */
public interface IBsRelationService {

    boolean checkIsAttention(Long aimId);

    Integer getTotalRelationByType(String type, String aimId);

    Map<String, Integer> getTotalRelationByType(String type, Set<String> aimIds);

    Map<String, Boolean> getRelationByType(String type, Set<String> aimIds);
    /**
     * 查询关系记录（关注、收藏、点赞）
     */
    BsRelation queryById(Long id);

    /**
     * 查询关系记录（关注、收藏、点赞）列表
     */
    List<BsRelation> queryPageList(BsRelationRO ro);

    /**
     * 查询关系记录（关注、收藏、点赞）列表
     */
    List<BsRelation> queryList(BsRelationRO ro);

    /**
     * 新增关系记录（关注、收藏、点赞）
     */
    Boolean insertByBo(BsRelationRO ro);

    /**
     * 修改关系记录（关注、收藏、点赞）
     */
    Boolean updateByBo(BsRelationRO ro);

    Boolean deleteByParam(BsRelationRO ro);

    /**
     * 校验并批量删除关系记录（关注、收藏、点赞）信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<BsRelationVO> queryPageListByScene(String scene);

    YoukeCenterInfoDTO youkeCenterCount();
}
